{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "f576ca91",
   "metadata": {},
   "source": [
    "运行环境：jupyter notebook"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "manual-chemistry",
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "import lightgbm as lgb\n",
    "import matplotlib.pyplot as plt\n",
    "from sklearn.model_selection import train_test_split\n",
    "from sklearn.metrics import accuracy_score\n",
    "from sklearn.metrics import precision_score\n",
    "from sklearn.metrics import roc_auc_score\n",
    "from sklearn.metrics import roc_curve\n",
    "from sklearn.metrics import recall_score\n",
    "from sklearn.metrics import f1_score\n",
    "from sklearn.preprocessing import MinMaxScaler\n",
    "from sklearn.model_selection import StratifiedKFold\n",
    "import time\n",
    "import warnings\n",
    "warnings.filterwarnings('ignore')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0120cdd4",
   "metadata": {},
   "source": [
    "# 等比例缩小数据量"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "51e854b9",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>distance_from_home</th>\n",
       "      <th>distance_from_last_transaction</th>\n",
       "      <th>ratio_to_median_purchase_price</th>\n",
       "      <th>repeat_retailer</th>\n",
       "      <th>used_chip</th>\n",
       "      <th>used_pin_number</th>\n",
       "      <th>online_order</th>\n",
       "      <th>fraud</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>57.877857</td>\n",
       "      <td>0.311140</td>\n",
       "      <td>1.945940</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>10.829943</td>\n",
       "      <td>0.175592</td>\n",
       "      <td>1.294219</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>5.091079</td>\n",
       "      <td>0.805153</td>\n",
       "      <td>0.427715</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2.247564</td>\n",
       "      <td>5.600044</td>\n",
       "      <td>0.362663</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>44.190936</td>\n",
       "      <td>0.566486</td>\n",
       "      <td>2.222767</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>5.586408</td>\n",
       "      <td>13.261073</td>\n",
       "      <td>0.064768</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>3.724019</td>\n",
       "      <td>0.956838</td>\n",
       "      <td>0.278465</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>4.848247</td>\n",
       "      <td>0.320735</td>\n",
       "      <td>1.273050</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>0.876632</td>\n",
       "      <td>2.503609</td>\n",
       "      <td>1.516999</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>8.839047</td>\n",
       "      <td>2.970512</td>\n",
       "      <td>2.361683</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   distance_from_home  distance_from_last_transaction  \\\n",
       "0           57.877857                        0.311140   \n",
       "1           10.829943                        0.175592   \n",
       "2            5.091079                        0.805153   \n",
       "3            2.247564                        5.600044   \n",
       "4           44.190936                        0.566486   \n",
       "5            5.586408                       13.261073   \n",
       "6            3.724019                        0.956838   \n",
       "7            4.848247                        0.320735   \n",
       "8            0.876632                        2.503609   \n",
       "9            8.839047                        2.970512   \n",
       "\n",
       "   ratio_to_median_purchase_price  repeat_retailer  used_chip  \\\n",
       "0                        1.945940              1.0        1.0   \n",
       "1                        1.294219              1.0        0.0   \n",
       "2                        0.427715              1.0        0.0   \n",
       "3                        0.362663              1.0        1.0   \n",
       "4                        2.222767              1.0        1.0   \n",
       "5                        0.064768              1.0        0.0   \n",
       "6                        0.278465              1.0        0.0   \n",
       "7                        1.273050              1.0        0.0   \n",
       "8                        1.516999              0.0        0.0   \n",
       "9                        2.361683              1.0        0.0   \n",
       "\n",
       "   used_pin_number  online_order  fraud  \n",
       "0              0.0           0.0    0.0  \n",
       "1              0.0           0.0    0.0  \n",
       "2              0.0           1.0    0.0  \n",
       "3              0.0           1.0    0.0  \n",
       "4              0.0           1.0    0.0  \n",
       "5              0.0           0.0    0.0  \n",
       "6              0.0           1.0    0.0  \n",
       "7              1.0           0.0    0.0  \n",
       "8              0.0           0.0    0.0  \n",
       "9              0.0           1.0    0.0  "
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data=pd.read_csv('银行卡诈骗数据集.csv')\n",
    "data.head(10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "0157475b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.0    912597\n",
       "1.0     87403\n",
       "Name: fraud, dtype: int64"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data['fraud'].value_counts()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "8d91adf1",
   "metadata": {},
   "outputs": [],
   "source": [
    "# from sklearn.model_selection import train_test_split  #对数据按’fraud标签‘分层取样，确保取样后比列不变。\n",
    "\n",
    "# data, _ = train_test_split(data, test_size=0.99, stratify=data[['fraud']])\n",
    "# data.fraud.value_counts()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9a5ab6f0",
   "metadata": {},
   "source": [
    "# 数据预处理"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "9106520f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "distance_from_home                0\n",
       "distance_from_last_transaction    0\n",
       "ratio_to_median_purchase_price    0\n",
       "repeat_retailer                   0\n",
       "used_chip                         0\n",
       "used_pin_number                   0\n",
       "online_order                      0\n",
       "fraud                             0\n",
       "dtype: int64"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "##缺失值检查\n",
    "data.isna().sum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "95ef7dd3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "##重复值检查\n",
    "data.duplicated().sum()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "243e0658",
   "metadata": {},
   "source": [
    "无缺失值及重复值"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "c4d604e4",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(1825194, 8)"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "##过采样处理\n",
    "df1 = data.query('fraud == 0')\n",
    "df2 = data.query('fraud == 1').sample(len(df1),replace=True)\n",
    "data = pd.concat([df1,df2],axis=0).reset_index(drop=True)\n",
    "data.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "97b6b77e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.0    912597\n",
       "1.0    912597\n",
       "Name: fraud, dtype: int64"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.fraud.value_counts()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "eedc0953",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "训练集 fraud\n",
      "1.0      903493\n",
      "0.0      903449\n",
      "dtype: int64\n",
      "测试集 fraud\n",
      "0.0      9148\n",
      "1.0      9104\n",
      "dtype: int64\n"
     ]
    }
   ],
   "source": [
    "X = data.iloc[:,:-1]  ##特征列\n",
    "y = data.iloc[:,-1]   ##目标列\n",
    "X_train,X_test,y_train,y_test = train_test_split(X,y,test_size=0.2,random_state=2022)\n",
    "\n",
    "cols = data.shape[1]\n",
    "X = data.iloc[:,0:cols-1]\n",
    "y = data.iloc[:,cols-1:cols]\n",
    "\n",
    "#划分固定的训练集和测试集\n",
    "from sklearn.model_selection import train_test_split\n",
    "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.01, random_state=123)\n",
    "print(\"训练集\",y_train.value_counts())\n",
    "print(\"测试集\",y_test.value_counts())\n",
    "\n",
    "scale = MinMaxScaler()  ##数据归一化，提高模型预测精度"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "3e21d281",
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.metrics import roc_auc_score,roc_curve,auc,confusion_matrix,f1_score,matthews_corrcoef,cohen_kappa_score\n",
    "from sklearn import metrics\n",
    "from numpy import argmax\n",
    "from functools import reduce\n",
    "\n",
    "def find_optimal_cutoff(tpr,fpr,threshold):\n",
    "    optimal_idx = np.argmax(tpr - fpr)\n",
    "    optimal_threshold = threshold[optimal_idx]\n",
    "    return optimal_threshold\n",
    "\n",
    "def best_confusion_matrix(y_test, y_test_predprob):\n",
    "    fpr, tpr, thresholds = roc_curve(y_test, y_test_predprob, pos_label=1)\n",
    "    cutoff = find_optimal_cutoff(tpr,fpr,thresholds)\n",
    "    y_pred = list(map(lambda x:1 if x>=cutoff else 0,y_test_predprob))\n",
    "    TN,FP,FN,TP = confusion_matrix(y_test,y_pred).ravel()\n",
    "    return cutoff,TN,FN,FP,TP"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "96c4d339",
   "metadata": {},
   "outputs": [],
   "source": [
    "# #高斯核SVM\n",
    "# from sklearn.preprocessing import StandardScaler\n",
    "# from sklearn.svm import SVC\n",
    "# from sklearn.pipeline import Pipeline\n",
    "\n",
    "# from sklearn.preprocessing import StandardScaler\n",
    "# from sklearn.svm import SVC\n",
    "# from sklearn.pipeline import Pipeline\n",
    "\n",
    "# def RBFKernelSVC(gamma=1.0):\n",
    "#     return Pipeline([\n",
    "#         ('std_scaler',StandardScaler()),\n",
    "#         ('svc',SVC(kernel='rbf',gamma=gamma))\n",
    "#     ]\n",
    "#     )\n",
    "# svc = RBFKernelSVC(gamma=1.0)\n",
    "  \n",
    "# start=time.perf_counter()\n",
    "# svc.fit(X_train,y_train)\n",
    "# end=time.perf_counter()\n",
    "# y_pred=svc.predict(X_test)\n",
    "# y_pred_proba_Svc=svc._predict_proba_lr(X_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "32d0934f",
   "metadata": {},
   "outputs": [],
   "source": [
    "# print(\"训练时间：\",end-start)\n",
    "# acc=accuracy_score(y_pred,y_test)\n",
    "# print(\"ACC：\",acc)\n",
    "# f1 = round(f1_score(y_test, y_pred),3)\n",
    "# print(\"F1：\",f1)\n",
    "# cutoff,TN,FN,FP,TP = best_confusion_matrix(y_test, y_pred_proba_XGBClassifier[:,1])\n",
    "# best_recall,best_prec = round(TP/(TP+FN),3), round(TN/(FP+TN),3)\n",
    "# print(\"presicion:\",best_prec)\n",
    "# print(\"recall:\",best_recall)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "58dc227b",
   "metadata": {},
   "outputs": [],
   "source": [
    "# #多项式核SVM\n",
    "# from sklearn.preprocessing import StandardScaler\n",
    "# from sklearn.svm import LinearSVC\n",
    "# from sklearn.preprocessing import PolynomialFeatures #导入多项式回归\n",
    "# from sklearn.pipeline import Pipeline #导入python里的管道\n",
    "# def PolynomialSVC(degree,c=10):#多项式svm\n",
    "     \n",
    "#    # :param d:阶数\n",
    "#     #:param C:正则化常数\n",
    "#     #:return:一个Pipeline实例\n",
    "    \n",
    "#     return Pipeline([\n",
    "#             # 将源数据 映射到 3阶多项式\n",
    "#             (\"poly_features\", PolynomialFeatures(degree=degree)),\n",
    "#             # 标准化\n",
    "#             (\"scaler\", StandardScaler()),\n",
    "#             # SVC线性分类器\n",
    "#             (\"svm_clf\", LinearSVC(C=10, loss=\"hinge\", random_state=42,max_iter=10000))\n",
    "#         ])\n",
    "\n",
    "# poly_svc=PolynomialSVC(degree=3)\n",
    "# start=time.perf_counter()\n",
    "# poly_svc.fit(X_train,y_train)\n",
    "# end=time.perf_counter()\n",
    "# y_pred=poly_svc.predict(X_test)\n",
    "# y_pred_proba_PolySvc=poly_svc._predict_proba_lr(X_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "f77a801f",
   "metadata": {},
   "outputs": [],
   "source": [
    "# print(\"训练时间：\",end-start)\n",
    "# acc=accuracy_score(y_pred,y_test)\n",
    "# print(\"ACC：\",acc)\n",
    "# f1 = round(f1_score(y_test, y_pred),3)\n",
    "# print(\"F1：\",f1)\n",
    "# cutoff,TN,FN,FP,TP = best_confusion_matrix(y_test, y_pred_proba_PolySvc[:,1])\n",
    "# best_recall,best_prec = round(TP/(TP+FN),3), round(TN/(FP+TN),3)\n",
    "# print(\"presicion:\",best_prec)\n",
    "# print(\"recall:\",best_recall)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "864112dd",
   "metadata": {},
   "source": [
    "# LightGBM建模预测"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "409c6cfb",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 模型参数\n",
    "params = {\n",
    "        'objective' : 'multiclass',\n",
    "        'num_class' : 2,\n",
    "        'num_leaves': 30, \n",
    "        'min_child_samples': 20,\n",
    "        'min_data_in_leaf': 0,\n",
    "        'max_depth': 7,\n",
    "        'learning_rate': 0.01,\n",
    "        \"min_sum_hessian_in_leaf\": 15,\n",
    "        \"boosting\": \"gbdt\",\n",
    "        \"feature_fraction\": 0.3,  \n",
    "        \"bagging_freq\": 1,\n",
    "        \"bagging_fraction\": 0.8,\n",
    "        \"bagging_seed\": 1,\n",
    "        \"lambda_l1\": 0.3,      #l1\n",
    "        'lambda_l2': 0.01,     #l2\n",
    "        \"verbosity\": -1,\n",
    "        \"nthread\": -1,                \n",
    "        \"random_state\": 1, \n",
    "        }"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "61b41478",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "fold n°1\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=0, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=0\n",
      "Training until validation scores don't improve for 500 rounds\n",
      "[100]\ttraining's multi_logloss: 0.547877\tvalid_1's multi_logloss: 0.556135\n",
      "[200]\ttraining's multi_logloss: 0.472507\tvalid_1's multi_logloss: 0.48944\n",
      "[300]\ttraining's multi_logloss: 0.40812\tvalid_1's multi_logloss: 0.434125\n",
      "[400]\ttraining's multi_logloss: 0.349677\tvalid_1's multi_logloss: 0.382707\n",
      "[500]\ttraining's multi_logloss: 0.313434\tvalid_1's multi_logloss: 0.352404\n",
      "[600]\ttraining's multi_logloss: 0.285979\tvalid_1's multi_logloss: 0.329871\n",
      "[700]\ttraining's multi_logloss: 0.25859\tvalid_1's multi_logloss: 0.306555\n",
      "[800]\ttraining's multi_logloss: 0.229424\tvalid_1's multi_logloss: 0.280161\n",
      "[900]\ttraining's multi_logloss: 0.211697\tvalid_1's multi_logloss: 0.265804\n",
      "[1000]\ttraining's multi_logloss: 0.197523\tvalid_1's multi_logloss: 0.254068\n",
      "Did not meet early stopping. Best iteration is:\n",
      "[1000]\ttraining's multi_logloss: 0.197523\tvalid_1's multi_logloss: 0.254068\n",
      "fold n°2\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=0, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=0\n",
      "Training until validation scores don't improve for 500 rounds\n",
      "[100]\ttraining's multi_logloss: 0.547731\tvalid_1's multi_logloss: 0.556816\n",
      "[200]\ttraining's multi_logloss: 0.472239\tvalid_1's multi_logloss: 0.49044\n",
      "[300]\ttraining's multi_logloss: 0.407777\tvalid_1's multi_logloss: 0.435455\n",
      "[400]\ttraining's multi_logloss: 0.349267\tvalid_1's multi_logloss: 0.384265\n",
      "[500]\ttraining's multi_logloss: 0.312966\tvalid_1's multi_logloss: 0.354077\n",
      "[600]\ttraining's multi_logloss: 0.285474\tvalid_1's multi_logloss: 0.331645\n",
      "[700]\ttraining's multi_logloss: 0.258027\tvalid_1's multi_logloss: 0.308397\n",
      "[800]\ttraining's multi_logloss: 0.228811\tvalid_1's multi_logloss: 0.282019\n",
      "[900]\ttraining's multi_logloss: 0.211057\tvalid_1's multi_logloss: 0.26775\n",
      "[1000]\ttraining's multi_logloss: 0.196863\tvalid_1's multi_logloss: 0.256054\n",
      "Did not meet early stopping. Best iteration is:\n",
      "[1000]\ttraining's multi_logloss: 0.196863\tvalid_1's multi_logloss: 0.256054\n",
      "fold n°3\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=0, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=0\n",
      "Training until validation scores don't improve for 500 rounds\n",
      "[100]\ttraining's multi_logloss: 0.547802\tvalid_1's multi_logloss: 0.554415\n",
      "[200]\ttraining's multi_logloss: 0.472375\tvalid_1's multi_logloss: 0.485549\n",
      "[300]\ttraining's multi_logloss: 0.407934\tvalid_1's multi_logloss: 0.428\n",
      "[400]\ttraining's multi_logloss: 0.349439\tvalid_1's multi_logloss: 0.374915\n",
      "[500]\ttraining's multi_logloss: 0.3132\tvalid_1's multi_logloss: 0.343192\n",
      "[600]\ttraining's multi_logloss: 0.285725\tvalid_1's multi_logloss: 0.319458\n",
      "[700]\ttraining's multi_logloss: 0.25831\tvalid_1's multi_logloss: 0.295167\n",
      "[800]\ttraining's multi_logloss: 0.229125\tvalid_1's multi_logloss: 0.268177\n",
      "[900]\ttraining's multi_logloss: 0.211388\tvalid_1's multi_logloss: 0.253048\n",
      "[1000]\ttraining's multi_logloss: 0.197212\tvalid_1's multi_logloss: 0.240751\n",
      "Did not meet early stopping. Best iteration is:\n",
      "[1000]\ttraining's multi_logloss: 0.197212\tvalid_1's multi_logloss: 0.240751\n",
      "fold n°4\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=0, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=0\n",
      "Training until validation scores don't improve for 500 rounds\n",
      "[100]\ttraining's multi_logloss: 0.548049\tvalid_1's multi_logloss: 0.553013\n",
      "[200]\ttraining's multi_logloss: 0.472669\tvalid_1's multi_logloss: 0.483105\n",
      "[300]\ttraining's multi_logloss: 0.408351\tvalid_1's multi_logloss: 0.424437\n",
      "[400]\ttraining's multi_logloss: 0.34996\tvalid_1's multi_logloss: 0.370668\n",
      "[500]\ttraining's multi_logloss: 0.313764\tvalid_1's multi_logloss: 0.338347\n",
      "[600]\ttraining's multi_logloss: 0.286357\tvalid_1's multi_logloss: 0.314218\n",
      "[700]\ttraining's multi_logloss: 0.258991\tvalid_1's multi_logloss: 0.289692\n",
      "[800]\ttraining's multi_logloss: 0.229868\tvalid_1's multi_logloss: 0.26267\n",
      "[900]\ttraining's multi_logloss: 0.212158\tvalid_1's multi_logloss: 0.247567\n",
      "[1000]\ttraining's multi_logloss: 0.198026\tvalid_1's multi_logloss: 0.235307\n",
      "Did not meet early stopping. Best iteration is:\n",
      "[1000]\ttraining's multi_logloss: 0.198026\tvalid_1's multi_logloss: 0.235307\n",
      "fold n°5\n",
      "[LightGBM] [Warning] min_data_in_leaf is set=0, min_child_samples=20 will be ignored. Current value: min_data_in_leaf=0\n",
      "Training until validation scores don't improve for 500 rounds\n",
      "[100]\ttraining's multi_logloss: 0.547709\tvalid_1's multi_logloss: 0.556652\n",
      "[200]\ttraining's multi_logloss: 0.472242\tvalid_1's multi_logloss: 0.485559\n",
      "[300]\ttraining's multi_logloss: 0.407779\tvalid_1's multi_logloss: 0.424695\n",
      "[400]\ttraining's multi_logloss: 0.349324\tvalid_1's multi_logloss: 0.369283\n",
      "[500]\ttraining's multi_logloss: 0.313019\tvalid_1's multi_logloss: 0.335284\n",
      "[600]\ttraining's multi_logloss: 0.285525\tvalid_1's multi_logloss: 0.309743\n",
      "[700]\ttraining's multi_logloss: 0.258084\tvalid_1's multi_logloss: 0.284464\n",
      "[800]\ttraining's multi_logloss: 0.228867\tvalid_1's multi_logloss: 0.257862\n",
      "[900]\ttraining's multi_logloss: 0.211115\tvalid_1's multi_logloss: 0.241964\n",
      "[1000]\ttraining's multi_logloss: 0.196934\tvalid_1's multi_logloss: 0.229501\n",
      "Did not meet early stopping. Best iteration is:\n",
      "[1000]\ttraining's multi_logloss: 0.196934\tvalid_1's multi_logloss: 0.229501\n"
     ]
    }
   ],
   "source": [
    "##应用五折交叉提高模型稳定性\n",
    "evals_result = {}\n",
    "folds = StratifiedKFold(n_splits=5, shuffle=True, random_state=2022)\n",
    "oof = np.zeros([len(X_train),2])\n",
    "predictions = np.zeros([len(X_test),2])\n",
    "\n",
    "for fold_, (trn_idx, val_idx) in enumerate(folds.split(X_train, y_train)):\n",
    "    print(\"fold n°{}\".format(fold_+1))\n",
    "    #由k折交叉验证划分出来的训练集索引trn_idx和验证集索引val_idx定位到数据 并 对其归一化\n",
    "    x_train = scale.fit_transform(X_train.iloc[trn_idx])\n",
    "    x_val = scale.fit_transform(X_train.iloc[val_idx])\n",
    "    \n",
    "    #与对应的y标签拼接得到完整的从k折交叉验证中划分出来的训练集和验证集\n",
    "    trn_data = lgb.Dataset(x_train, y_train.iloc[trn_idx])\n",
    "    val_data = lgb.Dataset(x_val, y_train.iloc[val_idx])\n",
    "\n",
    "    #最大迭代数\n",
    "    num_round = 1000\n",
    "    start=time.perf_counter()\n",
    "    #用得到的数据训练模型\n",
    "    clf = lgb.train(params, \n",
    "                    trn_data, \n",
    "                    num_round, \n",
    "                    valid_sets = [trn_data, val_data], \n",
    "                    evals_result = evals_result,   #存放评估结果，即每次迭代的损失函数值\n",
    "                    verbose_eval = 100,   #表示每间隔100次迭代就输出一次信息 \n",
    "                    early_stopping_rounds = 500) #指定迭代多少次没有得到优化则停止训练\n",
    "    end=time.perf_counter()\n",
    "    x_test = scale.fit_transform(X_test)\n",
    "    #模型预测\n",
    "    #用具有最佳损失函数的那次模型来对对验证集做预测\n",
    "    oof[val_idx] = clf.predict(X_train.iloc[val_idx], num_iteration=clf.best_iteration)    \n",
    "    #用具有最佳损失函数的那次模型来对测试集做预测   predictions存放的两列值是测试集上属于0类和1类的概率\n",
    "    predictions += clf.predict(x_test, num_iteration=clf.best_iteration) / folds.n_splits"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "prospective-justice",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "5"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "predictions\n",
    "clf.best_iteration\n",
    "folds.n_splits"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "bce0aff0",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(18252, 2)"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "predictions.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "a744a374",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[0.00171033, 0.99828967],\n",
       "       [0.97005523, 0.02994477],\n",
       "       [0.14779655, 0.85220345],\n",
       "       [0.16737678, 0.83262322],\n",
       "       [0.72533842, 0.27466158],\n",
       "       [0.19464523, 0.80535477],\n",
       "       [0.79438999, 0.20561001],\n",
       "       [0.19857235, 0.80142765],\n",
       "       [0.30846624, 0.69153376],\n",
       "       [0.96907529, 0.03092471]])"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "predictions[0:10]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "c6c2e15a",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([1, 0, 1, ..., 1, 0, 1], dtype=int64)"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.argmax(predictions, axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "2b644ed9",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "训练时间： 273.40262740000003\n",
      "ACC： 0.8200745123822046\n",
      "F1： 0.847\n",
      "presicion: 0.722\n",
      "recall: 0.97\n"
     ]
    }
   ],
   "source": [
    "print(\"训练时间：\",end-start)\n",
    "acc = accuracy_score(np.argmax(predictions,axis=1),y_test)\n",
    "\n",
    "print(\"ACC：\",acc)\n",
    "f1 = round(f1_score(y_test,np.argmax(predictions, axis=1)),3)\n",
    "print(\"F1：\",f1)\n",
    "cutoff,TN,FN,FP,TP = best_confusion_matrix(y_test,predictions[:,1])\n",
    "best_recall,best_prec = round(TP/(TP+FN),3), round(TN/(FP+TN),3)\n",
    "print(\"presicion:\",best_prec)\n",
    "print(\"recall:\",best_recall)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "3929ddfd",
   "metadata": {},
   "outputs": [],
   "source": [
    "#模型训练：逻辑回归\n",
    "from sklearn.linear_model import LogisticRegression\n",
    "from sklearn.model_selection import GridSearchCV\n",
    "from sklearn.model_selection import cross_val_score\n",
    "penaltys = ['l1','l2'] #参数\n",
    "Cs = [0.001, 0.01, 0.1, 1, 10, 100, 1000] #参数\n",
    "tuned_parameters = dict(penalty = penaltys, C = Cs) #转换为参数字典\n",
    "lr_penalty= LogisticRegression()\n",
    "\n",
    "\n",
    "grid= GridSearchCV(lr_penalty, tuned_parameters,cv=5, scoring='neg_log_loss')#cv=5交叉验证5折，scoing评分标准\n",
    "grid.fit(X_train,y_train)\n",
    "\n",
    "lr=LogisticRegression(C=grid.best_params_[\"C\"],penalty = grid.best_params_[\"penalty\"]) #找到最好的参数\n",
    "start=time.perf_counter()\n",
    "lr.fit(X_train,y_train)\n",
    "end=time.perf_counter()\n",
    "\n",
    "y_pred = lr.predict(X_test)\n",
    "y_pred_proba_logistic = lr.predict_proba(X_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "1fa4bf5e",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "训练时间： 26.46154239999987\n",
      "ACC： 0.9411571334648258\n",
      "F1： 0.941\n",
      "presicion: 0.928\n",
      "recall: 0.962\n"
     ]
    }
   ],
   "source": [
    "# 计算准确度\n",
    "print(\"训练时间：\",end-start)\n",
    "acc=accuracy_score(y_pred,y_test)\n",
    "print(\"ACC：\",acc)\n",
    "f1 = round(f1_score(y_test, y_pred),3)\n",
    "print(\"F1：\",f1)\n",
    "cutoff,TN,FN,FP,TP = best_confusion_matrix(y_test, y_pred_proba_logistic[:,1])\n",
    "best_recall,best_prec = round(TP/(TP+FN),3), round(TN/(FP+TN),3)\n",
    "print(\"presicion:\",best_prec)\n",
    "print(\"recall:\",best_recall)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "41ca6c6e",
   "metadata": {},
   "outputs": [],
   "source": [
    "#模型朴素贝叶斯\n",
    "from sklearn.naive_bayes import GaussianNB\n",
    "GaussianNB = GaussianNB()\n",
    "start=time.perf_counter()\n",
    "GaussianNB.fit(X_train,y_train)\n",
    "end=time.perf_counter()\n",
    "y_pred = GaussianNB.predict(X_test)\n",
    "y_pred_proba_GaussianNB = GaussianNB.predict_proba(X_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "52a030f1",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "训练时间： 0.6439123000000109\n",
      "ACC： 0.9136532982686829\n",
      "F1： 0.917\n",
      "presicion: 0.948\n",
      "recall: 0.954\n"
     ]
    }
   ],
   "source": [
    "# 计算准确度\n",
    "print(\"训练时间：\",end-start)\n",
    "acc=accuracy_score(y_pred,y_test)\n",
    "print(\"ACC：\",acc)\n",
    "f1 = round(f1_score(y_test, y_pred),3)\n",
    "print(\"F1：\",f1)\n",
    "cutoff,TN,FN,FP,TP = best_confusion_matrix(y_test, y_pred_proba_GaussianNB[:,1])\n",
    "best_recall,best_prec = round(TP/(TP+FN),3), round(TN/(FP+TN),3)\n",
    "print(\"presicion:\",best_prec)\n",
    "print(\"recall:\",best_recall)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "c89d6c3c",
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.tree import DecisionTreeClassifier\n",
    "model=DecisionTreeClassifier(criterion='gini', max_depth=1, min_impurity_decrease= 0.1)\n",
    "start=time.perf_counter()\n",
    "model.fit(X_train, y_train)\n",
    "end=time.perf_counter()\n",
    "y_pred=model.predict(X_test)\n",
    "y_pred_proba_DecisionTreeClassifier=model.predict_proba(X_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "076b30d2",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "训练时间： 2.0754495999999563\n",
      "ACC： 0.8522353714661407\n",
      "F1： 0.834\n",
      "presicion: 0.958\n",
      "recall: 0.746\n"
     ]
    }
   ],
   "source": [
    "print(\"训练时间：\",end-start)\n",
    "acc=accuracy_score(y_pred,y_test)\n",
    "print(\"ACC：\",acc)\n",
    "f1 = round(f1_score(y_test, y_pred),3)\n",
    "print(\"F1：\",f1)\n",
    "cutoff,TN,FN,FP,TP = best_confusion_matrix(y_test, y_pred_proba_DecisionTreeClassifier[:,1])\n",
    "best_recall,best_prec = round(TP/(TP+FN),3), round(TN/(FP+TN),3)\n",
    "print(\"presicion:\",best_prec)\n",
    "print(\"recall:\",best_recall)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "5b6bcd02",
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.neighbors import KNeighborsClassifier\n",
    "model=KNeighborsClassifier(n_neighbors=1)\n",
    "start=time.perf_counter()\n",
    "model.fit(X_train, y_train)\n",
    "end=time.perf_counter()\n",
    "y_pred=model.predict(X_test)\n",
    "y_pred_proba_KNeighborsClassifier=model.predict_proba(X_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "d53639ab",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "训练时间： 15.943809800000054\n",
      "ACC： 0.9956169186938417\n",
      "F1： 0.996\n",
      "presicion: 0.991\n",
      "recall: 1.0\n"
     ]
    }
   ],
   "source": [
    "print(\"训练时间：\",end-start)\n",
    "acc=accuracy_score(y_pred,y_test)\n",
    "print(\"ACC：\",acc)\n",
    "f1 = round(f1_score(y_test, y_pred),3)\n",
    "print(\"F1：\",f1)\n",
    "cutoff,TN,FN,FP,TP = best_confusion_matrix(y_test, y_pred_proba_KNeighborsClassifier[:,1])\n",
    "best_recall,best_prec = round(TP/(TP+FN),3), round(TN/(FP+TN),3)\n",
    "print(\"presicion:\",best_prec)\n",
    "print(\"recall:\",best_recall)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "id": "4434db7d",
   "metadata": {},
   "outputs": [],
   "source": [
    "# XGBoost分类器进行模型训练，代码如下：\n",
    "from xgboost import XGBClassifier\n",
    "\n",
    "model=XGBClassifier()\n",
    "start=time.perf_counter()\n",
    "model.fit(X_train, y_train)\n",
    "end=time.perf_counter()\n",
    "y_pred=model.predict(X_test)\n",
    "y_pred_proba_XGBClassifier=model.predict_proba(X_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "id": "32d5cc77",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "训练时间： 72.09522340000012\n",
      "ACC： 1.0\n",
      "F1： 1.0\n",
      "presicion: 1.0\n",
      "recall: 1.0\n"
     ]
    }
   ],
   "source": [
    "print(\"训练时间：\",end-start)\n",
    "acc=accuracy_score(y_pred,y_test)\n",
    "print(\"ACC：\",acc)\n",
    "f1 = round(f1_score(y_test, y_pred),3)\n",
    "print(\"F1：\",f1)\n",
    "cutoff,TN,FN,FP,TP = best_confusion_matrix(y_test, y_pred_proba_XGBClassifier[:,1])\n",
    "best_recall,best_prec = round(TP/(TP+FN),3), round(TN/(FP+TN),3)\n",
    "print(\"presicion:\",best_prec)\n",
    "print(\"recall:\",best_recall)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "aa0781c1",
   "metadata": {},
   "source": [
    "# 各模型性能比较"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "id": "838df9eb",
   "metadata": {},
   "outputs": [],
   "source": [
    "def multi_models_roc(names, prob_results, colors,linestyles, y_test, save=True, dpin=100):\n",
    "    plt.figure(figsize=(10, 10), dpi=dpin)\n",
    "    from adjustText import adjust_text\n",
    "    from sklearn.metrics import roc_curve\n",
    "    from sklearn import metrics\n",
    "    texts = []\n",
    "    for (name, result, colorname,linestylename) in zip(names, prob_results, colors, linestyles):\n",
    "        y_test_predprob = result[:,1]\n",
    "        fpr, tpr, thresholds = roc_curve(y_test, y_test_predprob)\n",
    "        \n",
    "#         optimal_th, optimal_point = Find_Optimal_Cutoff(TPR=tpr, FPR=fpr, threshold=thresholds)\n",
    "#         plt.plot(optimal_point[0], optimal_point[1], marker='o', color='r')\n",
    "#         texts.append(plt.text(optimal_point[0], optimal_point[1], name+' '+f'Threshold:{optimal_th:.2f}'))\n",
    "#         texts.append(plt.text(optimal_point[0], optimal_point[1], name))\n",
    "        plt.plot(fpr, tpr, lw=3, label='{} (AUC={:.3f})'.format(name, metrics.auc(fpr, tpr)),color = colorname,linestyle=linestylename)\n",
    "        plt.plot([0, 1], [0, 1], '--', lw=3, color = 'grey')\n",
    "        plt.axis('square')\n",
    "        plt.xlim([0, 1])\n",
    "        plt.ylim([0, 1.05])\n",
    "        plt.xlabel('False Positive Rate',fontsize=10)\n",
    "        plt.ylabel('True Positive Rate',fontsize=10)\n",
    "        plt.title('ROC Curve',fontsize=20)\n",
    "        plt.legend(loc='lower right',fontsize=10)\n",
    "        adjust_text(texts, \n",
    "            arrowprops=dict(\n",
    "            arrowstyle='->',#箭头样式 \n",
    "            lw= 2,#线宽\n",
    "            color='red')#箭头颜色\n",
    "           )\n",
    "    if save:\n",
    "        plt.savefig('multi_models_roc.png')\n",
    "    return plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "id": "9ee360d1",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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G8uyiIuLo1q1arRv35577rmHXbt2sW3bNtcxq1at4oILLiA0NJSaNWsyevRokpOTXfv37t3LpZdeSmhoKHXr1mX+/Pke782yLF555RWuuOIKwsPDeeKJJwD4+OOP3X4j/uijj7p9jrl9JgAvvfQSDRs2JCQkhKpVq3LVVVe59uX8rA8fPsz1119PTEwMYWFh9O7dm+3bt7v2Z32Wy5cvp2nTpkRERNCrVy/27t2b5+e3cOFCLr/8co/25ORk3n33XW677Tb69u3LnDlz8rxObo4fP84NN9xAnz59WLJkCd26daNu3bqce+65TJ06lVdffbVQ133llVeoVasWM2bMoGnTptx0002MGDGCqVOn5nrOwoULadmyJZMmTaJBgwZceOGFTJ48mZkzZ3Ls2DEAfvrpJxwOB0888QT169enbdu23Hvvvfz888+u4Jnfe19++eUsWLCgUO+vuPjtwPRCPQnJKTSuaGqRYnPo0CEFEBEpt5yHEtnZ1PNLW0mps3UJAbExZ3SNPXv20KdPH4YPH87cuXP57bffGDlyJCEhIa5uNGPGjOH7779nyZIlVK1alUmTJvHTTz/RunVrr9d8//33mT59OgsXLqR58+YkJCTw888/A5ldi1q1asXNN9/MyJEjc63rk08+oX///kycOJG33nqLtLQ0PvnEy3phuThy5Ajz588HIDAwEIBffvmFnj178vjjjxMfH8+BAwe44447uOOOO5g9ezYA119/PQcPHmTFihUEBgYyZswY1yJy2T388MNMnjyZ6dOnExAQwPLlyxkyZAjPP/88Xbp04c8//3R1T3v44Yfz/EzWrVvH6NGjeeutt+jcuTOHDh3iu+++y/W9DR8+nO3bt7NkyRKioqK4//776dOnD1u2bHG91+PHjzN16lTeeustbDYbQ4YM4d5772XevHler3n48GE2b95M+/btPfa98847NG7cmMaNGzNkyBDuvPNOHnrooQLP5pT1JCG3afizh9CIiIg8r9WlSxc+++wzAFavXk2PHj3c9vfs2ZP4+HjS09Ndn0l2qamphIS4T3gUGhpKSkoK69ev56KLLqJ9+/YEBAQwe/Zshg8fTlJSEm+99RY9evRwXTO/9+7QoQN///03u3btonbt2nm+t5LityFkYc3r+f2G3Zy7by39d37OgthNbF75F+GBFQgPjOCCuJZ0rd7q1AmH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t1x99dUEBwe7fguf3cMPP8wll1xC/fr1ufrqq8nIyOCzzz7LdVCzN1FRUdx00008/PDD9OvXj/vvv5+OHTsyatQoRo4cSXh4OFu3buWLL77ghRdeoEmTJnTr1o2bb76Zl19+mcDAQMaOHUtoaOhpB2FPmjSJvn37UrNmTQYOHIjNZmPTpk388ssvPPHEE3l+JkuXLuWvv/7iggsuICYmhk8//RSn0+m1y1vDhg254oorGDlyJK+++iqRkZGMHz+eGjVqcMUVV+T7s8nJZrPRrVs3Vq5c6VpTZunSpRw+fJgbb7zR9TQjy1VXXUV8fDx33HEHkZGR3HLLLYwdOxa73U6rVq34999/mThxIk2bNnUFmPDwcN544w0GDhzI5ZdfzujRo2nQoAEHDx7k3XffZffu3SxcuBAgzzCX06233sqLL77ImDFjGDlyJKtXryY+Pt5tNqrFixfzwAMP8Ntvv7nannnmGXr16oXNZuODDz7gqaee4t1333UFjUsvvZTp06fz2GOPcc0113Ds2DEmTJjgNmYnP/cG+O677+jSpUuhnvAVG2OMX72AKMBs7TXS/BF7vut15I1FRsqup59+2jzyyCOuV2pqqq9LEhEpcidOnDBbtmwxJ06c8HUpBTJs2DADeLyGDRtmjDFmxYoV5pxzzjFBQUEmLi7O3H///SY9Pd11/tGjR821115rwsLCTFxcnHn22WdNhw4dzPjx413H1K5d20yfPt0YY8zixYvNueeea6Kiokx4eLjp2LGj+fLLL13Hrl692rRs2dIEBwebzK9CxsyePdtER0e71b1o0SLTunVrExQUZGJjY03//v1zfY/ezjfGmF27dhm73W7eeecdY4wxa9asMd27dzcREREmPDzctGzZ0jz55JOu4//991/Tu3dvExwcbGrXrm3mz59vqlSpYl555RXXMYBZvHixx72WLVtmOnfubEJDQ01UVJTp0KGDee211077mXz33XfmwgsvNDExMSY0NNS0bNnSVa8xxlx44YXmrrvucm0fOnTIDB061ERHR5vQ0FDTs2dP8/vvv+f5WSxevNj1Wedm2bJlpkaNGsbhcBhjjOnbt6/p06eP12PXr19vALN+/XpjjDEpKSnmscceM02bNjWhoaGmdu3aZvjw4Wbv3r0e565du9b079/fVK5c2QQHB5sGDRqYm2++2Wzfvj3P+vKy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DtcxS5YsMZZlmbS0NK/XXbx4sbEsy+zcudOtfc6cOaZmzZoFfm/+KLd/XxITE7P+fxRlivA7uV8/CfF490GNTn9OUMViKUUyH1uvXr2ayZMn+7oUEZGy54MqhX/9NSv3637S1PP4YnTs2DEuu+wyzj77bH766Scef/xx7r//fq/HTpw4kWnTprFu3TrsdjsjRmT2Xhg8eDBjx46lefPmrt+UDx48mM8//5z//vuPcePG5Xp/y7Jy3bdu3Tp++uknzj33XI99I0aMYM6cOa7tWbNmcd1115326f3hw4fZvHkz7du399j3zjvv0LhxYxo3bsyQIUOYPXu2W1ew/Mp6kpDb+65QoYLr54iIiDxf2bvNrV69mh49erhdq2fPnqxbt871VCOnxo0bExsbS3x8PGlpaZw4cYL4+HiaN29O7dq1AWjfvj0BAQHMnj0bh8NBYmIib731Fj169CAwMNDrdePj4+nWrZvrGlk6dOjA33//za5dXrrXi0/5dwjJOQQkoJL7dkYy2IKh84JTbV0+KPay/FH2aXjT0tIURERE/NS8efOwLIvXX3+dZs2a0bt3b+677z6vxz755JNceOGFNGvWjPHjx7Nq1SpSUlIIDQ0lIiICu91OXFwccXFxhIaGusY+NG7c2HWNtWvXun3JXrp0qds9OnfuTEREBEFBQZxzzjkMGjSI66+/3qOWvn37cvToUb799luSk5N59913XaEoL7t27cIYQ/Xq1T32xcfHM2TIEAB69epFUlISX3311WmvmdP27dsBaNKkyWmP3bhxY56vN954w3VsQkICVatWdTu/atWqZGRkcPDgQa/Xj4yMZMWKFbz99tuuv6fly5fz6aefYrdnTtpap04dPv/8cyZMmEBwcDAVKlTgn3/+YeHChV6vuXfvXj777DNuuukmj301atQAMsf4SOni11P0Tq52O0P3vM7nATGccAYRHhhN+NH36V/nfOpGxoEzHboug5g2p06Kbua7gsspb+uApKWl8cYbb3j9B0VERMqvbdu20bJlS0JCTq3Z1aFDB6/HtmzZ0vVztWrVANi/f3++xmFkv0bWoOiGDRuSkeE+PvSdd96hadOmpKen88svvzB69GhiYmJ46qmn3I4LDAx0Pa3466+/aNSokVt9ucn671/29wuZn8OaNWv44IPMX37a7XYGDx7MrFmz6NatW77fH1Cg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CznnnHP45JNPvH4pb9q0KR07duT+++9nxIgRbl+8R40axeuvv84111zDfffdR2xsLH/88QcLFy7k9ddfZ926dXz11Vf06NGDKlWq8OOPP3LgwAHXb/JzstlsdOvWjZUrV9KvXz8gc2zL4cOHufHGG11PM7JcddVVxMfHc8cddxAZGcktt9zC2LFjsdvttGrVin///ZeJEyfStGlTV4AJDw/njTfeYODAgVx++eWMHj2aBg0acPDgQd59913XZ5L1GeXXrbfeyosvvsiYMWMYOXIkq1evJj4+3m02qsWLF/PAAw+4PYV55pln6NWrFzabjQ8++ICnnnqKd99919Udq1u3brRt25YRI0YwY8YMnE4no0aNonv37q6gNmPGDOrUqUPz5s1JS0vj7bffZtGiRR7TA3/33Xd06dLF7e9Q/Igxxq9eQBRgptz2k+n7yGemy7sPmvM/vsec//E95vLl4414d+zYMfPII4+4vVJTU31dloiIXzlx4oTZsmWLOXHihK9LKZBhw4YZwPWKjIw055xzjnn//ffdjrvvvvtMpUqVTEREhBk8eLCZPn26iY6O9rhefHy8AcyaNWs89v3+++/myiuvNBUqVDChoaGmSZMm5u677zZOp9Ns2bLF9OzZ01SuXNkEBwebRo0amRdeeCHP2pctW2Zq1KhhHA6HMcaYvn37mj59+ng9dv369QYw69evN8YYk5KSYh577DHTtGlTExoaamrXrm2GDx9u9u7d63Hu2rVrTf/+/V21NWjQwNx8881m+/btedaXlxUrVpg2bdqYoKAgU6dOHfPyyy+77Z89e7bJ/Cp4SteuXU10dLQJCQkx5557rvn00089rrtnzx7Tv39/ExERYapWrWqGDx9u/vvvP9f+p59+2tSvX9+EhISYmJgYc/7555tPPvnE4zqNGjUyCxYsKPT7k6KV278viYmJWf/fjTJF+J3cMoWYTq4ssywrCkicNvB1glttwBm3ExMbQlrVKgSHtefOhn1h+0vQbBzYw31dbqmSlJTEtGmZM4fpCYiISMlLSUlhx44d1K1b12OwtD958sknWbhwIb/88kux38sYQ8eOHbn77ru55ppriv1+/uKTTz7hvvvuY9OmTbl2nZOSldu/L0ePHs166hdtjDlaVPfz27/1i7+KJ/J/mW8/cnBnqrx4sg/q/JMzRpzYA4HRUPtqqHSOj6osXSIiIhg7dixBQUEKICIiUuKSkpLYunUrL7zwAo8//niJ3NOyLF577TU2bdpUIvfzF8nJycyePVsBxI/pbx5wHk/J/GHfilONf8Zn/hl2lt+FkKSkJK/TGwK5touIiBS3O+64gwULFtCvXz+3WbGKW6tWrWjVqlWJ3c8fZC0gKf5LIQRI2/pX5g+HfvLcedYVJVuMj2XNgtWzZ086duzo63JERERc5syZw5w5c3xdhogUAb9dJyS78L4XZv7gbfGeiHolW4wPZZ+Gd/ny5fzwww8+rkhEREREyiOFEMCynfwYjMN9R9WuJV+Mj3hbB2T58uVs27bNRxWJiIiISHmlEAKQ9QDEmeHeHuAfs2PltRBh1gqpIiIiIiJFxW/HhHw28Gn+bPoz1ev9j+jwxUT+8DHnB7ahWfaDsi9cWE5pJXQRERERKWl+G0Lstkj2HWnItow9cDwNjkNc0G/uIcQq3x+PAoiIiIiI+IK6Y3FqscaIIxty7HKWcC0lRwFERERERHxFIcQ6FULCI2q77/vvxxIupmQogIiISHnz9ddf06RJE5zO8vsLxJK2dOlS2rRpo89UioVfh5AWtb9lYMw6Lo/axCUR26kSYNwPqHqJbworRgogIiJS0oYPH45lWViWRWBgIFWrVqV79+7MmjXL9QV3xYoVrmNye+W1Rsi4ceOYOHEiNpv7V5sTJ04QExNDxYoVvf73z7IsPvzwQ4/2u+++m4suusitLSEhgTvvvJN69eoRHBxMzZo1ueyyy/jqq68K/Jlk2b17N5dddhnh4eHExsYyevRo0tLS8jwnISGBoUOHEhcXR3h4OG3btuX99993O6ZOnToen9/48eNd+3/++WeuueYaatasSWhoKE2bNuW5555zu0bfvn2xLIv58+cX+v2J5KZ8D3o4jUmtXiU09NCphl05Fuer0qVkCypmCiAiIuXX4dQkt+3IwFDsuUywUpBjj6QlYbL9ji4iMIRAW8G/PvTq1YvZs2fjcDjYt28fy5Yt46677uL9999nyZIldO7cmb1797qOv+uuuzh69CizZ892tUVHR3u99qpVq9i+fTsDBw702Ldo0SJatGiBMYYPPviA6667rsC1A+zcuZPzzjuPChUqMGXKFFq2bEl6ejrLly9n1KhR/PbbbwW+psPh4NJLL6Vy5cqsXLmS//77j2HDhmGM4YUXXsj1vKFDh5KYmMiSJUuIjY1l/vz5DB48mHXr1tGmTRvXcY899hgjR450bUdERLh+Xr9+PZUrV+btt9+mZs2arFq1iptvvpmAgADuuOMO13E33HADL7zwAkOGDCnw+xPJi1+HEDf2GpD0h3ubLdA3tRSD6dOnK4CIiJRjl38xyW177oXjqBsZ5/XYQV8/QYrj1G/bXzv/bppWqOX12CErniYxLdm1/XzH22kT26DA9QUHBxMXl1lPjRo1aNu2LR07duSSSy5hzpw53HTTTa79AKGhoaSmprq15WbhwoX06NGDkJAQj33x8fEMGTIEYwzx8fGFDiG33347lmWxZs0awsNPTeHfvHlzRowYUahrfv7552zZsoW///6b6tWrAzBt2jSGDx/Ok08+SVRUlNfzVq9ezcsvv0yHDh0AePDBB5k+fTo//fSTWwiJjIzM9fPLWXO9evVYvXo1H3zwgVsIufzyyxk9ejR//fUX9er5zwLOUvz8ujuWh9SD7tvlaHas888/32u7AoiIiPjKxRdfTKtWrfjggw/O6Drffvst7du392j/888/Wb16NYMGDWLQoEGsWrWKv/76q8DXP3ToEMuWLWPUqFFuASRLhQoVXD/37t2biIiIPF9ZVq9eTYsWLVwBBKBnz56kpqayfv36XOs5//zzeeeddzh06BBOp5OFCxeSmprq0X3s6aefplKlSrRu3Zonn3zytN28EhMTqVixoltb7dq1qVKlCt99912e54oUVPn5ln2mMvZAUEVcs2WlHQZnqk9LKkrnnHMOAJ9++qmrTQFERER8rUmTJmzatOmMrrFz5063L/JZZs2aRe/evYmJiQEyu4TNmjWLJ554okDX/+OPPzDG0KRJk9Me+8Ybb+Ta8yCnhIQEqlat6tYWExNDUFAQCQkJuZ73zjvvMHjwYCpVqoTdbicsLIzFixdTv3591zF33XUXbdu2JSYmhjVr1vDAAw+wY8cO3njjDa/XXL16Ne+++y6ffPKJx74aNWqwc+fOfL0nkfxSCMkScQVc9WHmz4lbYMP9UPtan5ZU1LKCyLJly7j//vsVQERExOeMMViWdUbXOHHihEdXLIfDwZtvvuk22HrIkCHcc889PProowQE5H9BYnNyUEx+6qxRo0a+r5vbNU/3mTz44IMc1oi2VQAAMAlJREFUPnyYL7/8ktjYWD788EMGDhzId999x9lnnw3APffc4zq+ZcuWxMTEcNVVV7mejmT366+/csUVVzBp0iS6d+/ucb/Q0FCOHz9eoPclcjoKIS7Z/jEyTujyHgR49i0t68455xxXGBERkfJjSffH3LYjA0NzPfbdix/M97FvX3S/x8D0orR161bq1q17RteIjY3l8OHDbm3Lly9nz549DB482K3d4XDw+eef07t3byBz3ERiYqLHNY8cOeIaCN+wYUMsy2Lr1q3069cvz1p69+592q5LSUmZEwPExcXx44/uywEcPnyY9PR0jyckWf78809efPFFNm/eTPPmzQFo1aoV3333HTNnzuSVV17xel7HjpmT7/zxxx9uIWTLli1cfPHFjBw5kgcffNDruYcOHaJy5cp5vieRgvLrEHLbqkdoefYHRASkUSMtkkvPOrmjQguf1nWmXn31Va677jq3fqciIlK+xQTn/9/8ghxbIaj4/lvy9ddf88svv7j91r4w2rRpw5YtW9za4uPjufrqq5k4caJb+1NPPUV8fLwrhDRp0oS1a9cybNgw1zHGGNavX+86pmLFivTs2ZOZM2cyevRoj3EhR44ccY0LKUh3rE6dOvHkk0+yd+9eqlWrBmQOVg8ODqZdu3Zez8l6IpFzKuKAgIA81/PYsCFzQeas+0DmE5CLL76YYcOG8eSTT3o9LyUlhT///NNtwLtIUfDrEHLwYAMWH838P1WLtDQu9XE9RSFrGt5p06YxduxYBRERESkVUlNTSUhIcJuid/LkyfTt25frr7/+jK7ds2dP3nzzTdf2gQMH+Pjjj1myZAktWrj/YnHYsGFceumlHDhwgMqVK3PvvfcybNgwmjRpQo8ePThx4gSvvfYaf/75J6NGjXKd99JLL9G5c2c6dOjAY489RsuWLcnIyOCLL77g5ZdfZuvWrUDBumP16NGDZs2aMXToUJ555hkOHTrEvffey8iRI10zY+3Zs4dLLrmEuXPn0qFDB5o0aUKDBg245ZZbmDp1KpUqVeLDDz/kiy++YOnSpUDm+I4ffviBrl27Eh0dzdq1a7nnnnu4/PLLqVUrcxa0X3/9la5du9KjRw/GjBnjGoMSEBDg9tTjhx9+IDg4mE6dOhXkr0TktPx8dqxTz5fDci5UWAblXAdk2rRprke+IiIivrRs2TKqVatGnTp16NWrF//73/94/vnn+eijjwo0PsObIUOGsGXLFrZt2wbA3LlzCQ8P55JLPBcd7tq1K5GRkbz11lsADBo0iDlz5vDmm29yzjnn0KNHD/7880++++47ateu7Tqvbt26/PTTT3Tt2pWxY8fSokULunfvzldffcXLL79cqLoDAgL45JNPCAkJ4bzzzmPQoEH069ePqVOnuo5JT09n27ZtricggYGBfPrpp1SuXJnLLruMli1bMnfuXN5880369OkDZE6H/M4773DRRRfRrFkzJk2axMiRI1mwYIHruu+99x4HDhxg3rx5VKtWzfXK2WV7wYIFXHfddYSFhRXqPYrkxjKm7H/5LgjLsqKAxCm3/cQ3cXtJbPslABdHHubR2j2h9mA4wwFyvpDbQoRBQUE88MADPqhIRESKWkpKCjt27KBu3bpe18TwZ+PGjSMxMZFXX33V16WUGwcOHKBJkyasW7fujMftSOmX278vR48ezRofFW2MOVpU9/PrJyH1a6zjsqhfuDhiGy0yfoZV18DCQHi/IqSXnScIea2EPnbs2BKuRkREpORNnDiR2rVr43A4fF1KubFjxw5eeuklBRApFn49JuSpts8RGnooc2P/yUbjyFwjxF42HjvmFUC0DoiIiPiL6OhoJkyY4OsyypUOHTq4VmUXKWp+/STETc5fnFil/6NRABERERGRsqj0f9MuKdlDiC3YZ2XklwKIiIiIiJRVCiFZsk+t7Uz1WRn5oQAiIiIiImWZQkiW7E9CqlzoszJORwFERERERMo6hZAs2UOIdWbzlRcXBRARERERKQ/8enassevvpU3TpYTZ0ujj+JUYTn7BL4WD0rdv364AIiIiIiLlgl+HkF37mvFL3AEAujj+yBZCSt+TkIYNG1KnTh127tzp1q4AIiIiIiJlTen7lX9Jsk6tFh/uSMvWXvpCCMCwYcOoU6eOa1sBREREpOAuuOAC5s+f7+syypVzzjmHDz74wNdlSBni3yGEbCHEmS2EZP+5lBk2bBidOnVSABERkTJj+PDh9OvXz63t/fffJyQkhClTpgDwyCOPYFkWt956q9txGzduxLIsV0+AnTt3YlkWVapU4dixY27Htm7dmkceeSTPWpYuXUpCQgJXX321x77/+7//IyAggKeeespj3yOPPELr1q092o8cOYJlWaxYscKtfdGiRVx00UVER0cTERFBy5Yteeyxxzh06FCe9eUla/XykJAQ2rVrx3fffXfac2bOnEnTpk0JDQ2lcePGzJ07121/eno6jz32GPXr1yckJIRWrVqxbNkyj+vs2bOHIUOGUKlSJcLCwmjdujXr16937X/ooYcYP348TqfT41wRb/w2hKTaj1Iz9DcuSN5Jx5B/CXZknNq5/xvfFZYPPXr0UAARERE3R5JT3V6OPL4M5jw2w5H7sYnH09yOTc/j2Px64403uO6663jxxRcZN26cqz0kJIT4+Hh+//33017j2LFjTJ06tcD3fv7557nhhhuw2Ty/As2ePZtx48Yxa9asAl83u4kTJzJ48GDOOeccPvvsMzZv3sy0adP4+eefeeuttwp1zXfeeYe7776biRMnsmHDBrp06ULv3r3ZvXt3rue8/PLLPPDAAzzyyCP8+uuvPProo4waNYqPP/7YdcyDDz7Iq6++ygsvvMCWLVu49dZbufLKK9mwYYPrmMOHD3PeeecRGBjIZ599xpYtW5g2bRoVKlRwHXPppZeSmJjI8uXLC/X+xP/47ZiQvvPGE2nLfPv1n1vpvrPBbT6o6JQpU6aQlpbGgw8+6NM6RESk7Bj87Jdu26/ecgF1qkR6Pfb6F/5HavqpaSGfv/E8Glev4PXYkS9/Q+LxUz0EpgztSKs6lQpd55QpU5g0aRLz589nwIABbvsaN25MlSpVePDBB3n33XfzvM6dd97Js88+y6hRo6hSpUq+7n3w4EG+/PJLpk+f7rHvm2++4cSJEzz22GPMnTuXb7/9lgsuuCD/b+ykNWvW8H//93/MmDGDu+66y9Vep04dunfvzpEjRwp8TYBnn32WG2+8kZtuugmAGTNmsHz5cl5++WUmT57s9Zy33nqLW265hcGDBwNQr149fvjhB55++mkuu+wy1zETJ06kT58+ANx2220sX76cadOm8fbbbwPw9NNPU7NmTWbPnu32frILCAigT58+LFiwgN69exfqPYp/8dsnIXk6scdnt86ahtfhcPD444/7rA4REZGiNn78eB5//HGWLl3qEUCyPPXUUyxatIi1a9fmea1rrrmGBg0a8Nhjj+X7/itXriQsLIymTZt67IuPj+eaa64hMDCQa665hvj4+HxfN7t58+YRERHB7bff7nV/1tOD7777joiIiDxf//d//wdAWloa69evp0ePHm7X6tGjB6tWrcq1ltTUVEJCQtzaQkNDWbNmDenp6Xkes3LlqV/QLlmyhPbt2zNw4ECqVKlCmzZteP311z3u16FDh3x1ERMBhRAIcGIqdYIKZ0NwbGZbhVY+KSXnOiBOp1NBREREyoXPPvuMp59+mo8++ohu3brlelzbtm0ZNGgQ48ePz/N6lmXx1FNP8dprr/Hnn3/mq4adO3dStWpVj65YR48eZdGiRQwZMgSAIUOG8P7773P06NF8XTe77du3U69ePQIDA/M8rn379mzcuDHPV9b4mIMHD+JwOKhatarbNapWrUpCQkKu9+jZsydvvPEG69evxxjDunXrmDVrFunp6Rw8eNB1zLPPPsv27dtxOp188cUXfPTRR+zdu9d1nb/++ouXX36Zhg0bsnz5cm699VZGjx7tMb6kRo0a7N69W+NCJF8UQhw26L4S+myCesMz21qUfDeo3BYidDqdpKWV3oHyIiIi+dGyZUvq1KnDpEmTPAaU5/TEE0/w3Xff8fnnn+d5XM+ePTn//PN56KGH8lXDiRMnPH7rDzB//nzq1atHq1aZv4Rs3bo19erVY+HChfm6bnbGGCzLOu1xoaGhNGjQIM9XxYoV3c7Jed3T3euhhx6id+/edOzYkcDAQK644gqGDx8OZHafAnjuuedo2LAhTZo0ISgoiDvuuIMbbrjBtR8yv4u0bduW//u//6NNmzbccsstjBw5kpdfftnjPTmdTlJTU0/7/kX8dkyIm6z/Aze9D9o8U+K310roIiJypt4Z4/50ITI099/Ez72zq9t2REjux75+24UYk202yTyOzUuNGjVYtGgRXbt2pVevXixbtozISO9jVurXr8/IkSMZP378abtFPfXUU3Tq1In77rvvtDXExsZy+PBhj/ZZs2bx66+/Yref+lrkdDqJj4/n5ptvBiAqKorExESPc7PGeERHRwPQqFEjVq5cSXp6ep5PQ7777rvTjp2YMGECEyZMIDY2loCAAI+nHvv37/d4OpJdaGgos2bN4tVXX2Xfvn1Uq1aN1157jcjISGJjM3t/VK5cmQ8//JCUlBT+++8/qlevzvjx46lbt67rOtWqVaNZs2Zu127atCmLFi1yazt06BBhYWGEhobm+b5EQCEEbLZTv0UIyd/AtqKkACIiIkWhQnhwsRwbHVZ0/x2qVasW33zzDV27dqVHjx4sX76cqKgor8dOmjSJ+vXrn/ZpRIcOHejfv/9pu28BtGnThoSEBA4fPkxMTAwAv/zyC+vWrWPFihVuTx6OHDnCBRdcwObNm2nRogVNmjThn3/+ISEhgbi4ONdxa9euxWaz0aBBAwCuvfZann/+eV566SW3genZr1uhQgVXd6y8ZNUTFBREu3bt+OKLL7jyyitd+7/44guuuOKK077vwMBAzjrrLAAWLlxI3759PbqkhYSEUKNGDdLT01m0aBGDBg1y7TvvvPPYtm2b2/G///47tWvXdmvbvHkzbdu2PW09IuDHIWTerXfirLGZsyO/J2n3S7Sq5X0AWXFSABEREX9z1llnsWLFCrcgkvUUIbuqVasyZswYnnnm9D0UnnzySZo3b+72JMObNm3aULlyZb7//nv69u0LZA5I79Chg9eZsDp16kR8fDzTp0+nR48eNG3alKuvvponn3yS6tWrs2nTJu69915uvfVW11Odc889l3HjxjF27Fj27NnDlVdeSfXq1fnjjz945ZVXOP/887nrrrtc3bHya8yYMQwdOpT27dvTqVMnXnvtNXbv3u22rsoDDzzAnj17XGM1fv/9d9asWcO5557L4cOHefbZZ9m8eTNvvvmm65wff/yRPXv20Lp1a/bs2cMjjzyC0+l0mzr5nnvuoXPnzvzf//0fgwYNYs2aNbz22mu89tprbjV+9913HoPnRXLjt2NCqhxuym/H2hAf047V+/8o8fsrgIiIiL+qUaMG33zzDUeOHMlz2tr77ruPiIiI016vUaNGjBgxgpSUlDyPCwgIYMSIEcybNw/InHXq7bffznWmrgEDBvD222+TlpaG3W7n888/p169elx33XU0b96c8ePHc9NNN/Hss8+6nff0008zf/58fvzxR3r27Enz5s0ZM2YMLVu2ZNiwYad9P94MHjyYGTNm8Nhjj9G6dWu+/fZbPv30U7enEXv37nVbN8ThcDBt2jRatWpF9+7dSUlJYdWqVW7T66akpPDggw/SrFkzrrzySmrUqMHKlSvd1gA555xzWLx4MQsWLKBFixY8/vjjzJgxg+uuu851zJ49e1i1ahU33HBDod6f+B8rez9Pf2BZVhSQOOW2n/hfnT841mw1N1fcz9DWT0NQDASEnhojUkwUQEREpDBSUlLYsWOHa9VsKbh9+/bRvHlz1q9f79GdSArvvvvuIzEx0ePpiJQduf37cvTo0aynldHGmIJPGZcLv30SkikzgIUf3QwfngXvhoMp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jh1JTg6Os0GDBvTr14/HH3+cL7/8kry8PD766CMgWI9Qnqsy9ejRg9WrVxcry8rKok+fPnzxxRcsX748/Lj33nvJysoK1zv55JNZvHhxqTYXL14cXpydlJTElVdeybRp0/jhhx9K1d29ezcHDhwAgtOxIl8v2qMyp2O1b9+ejIwMZs+eHS4rKChg/vz54QSjZ8+epKSkFKuzYcMGVq5cGa7Tu3dvtm/fzmeffRaus2jRIrZv3x6uU2TlypXh0+SkFnH3evUAmgL++M2f+57Pj/LCb//o5bVv3z4fM2ZMqce+ffvK3YaIiEis8vPzffXq1Z6fn1/ToVTI7bff7ieeeKLv2rUrXPbss896Wlqa5+bmhstGjhzpycnJfuedd/qCBQs8Ly/Ps7OzfciQIW5mvn37dnd3nzJlijdt2tQ3bNjgGzZs8G+++cafeeYZT05O9rFjx4bbu/jii71z586+YMECX758uQ8cONA7dOjgBQUF7u6+dOlST0pK8nHjxvnatWv9xRdf9NTUVJ8yZYq7u7/33ns+adIkX7Zsmefl5fnkyZM9KSnJV65c6e7uN954o/fq1ctzc3P9p59+8sLCwqjHP2PGDG/RooUfOHDA3d0LCgr82GOP9aeeeqpU3ZycHAd8+fLl7u6enZ3tSUlJPnbsWF+1apWvWrXKx40b50lJSf7pp5+G99uyZYuffPLJ3rp1a586daqvWrXKc3JyPCsryzt06OBbt26t4KcWWLdunS9btszHjh3raWlpvmzZMl+2bJnv3LkzXOekk07yt99+O/z80Ucf9fT0dH/77bd9xYoVPmjQIG/VqpXv2LEjXGf48OHeunVrnzNnjn/++ed+zjnneLdu3cLvkbv7wIEDvWvXrp6dne3Z2dnepUsXv+CCC4rFl5ub62bmeXl5MR2f/Kys75ft27c74EBTr8oxeVU2VhsekUnIpLeu9R++faa8n427l05ElICIiEi81MYkZN68eZ6cnOwLFiwote28887zc845xw8ePBgumz59uv/qV7/y9PR0T0lJ8datW/vVV19dbMA9ZcqUokGRA96oUSPv2LGjP/zww8UGsVu2bPFrrrnG09PTPTU11QcMGOA5OTnFYnjzzTe9c+fOnpKS4m3btvUnnngivG3BggXet29fb968uaempnrXrl19+vTp4e1r1671008/3VNTUx0ollBF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\n",
      "text/plain": [
       "<Figure size 1000x1000 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# from adjustText import adjust_text\n",
    "names = ['Logistic Regression',\n",
    "         'LightGBM',\n",
    "         'Bayes',\n",
    "         'DT',\n",
    "         'KNN',\n",
    "         'XGBoost'\n",
    "        ]\n",
    " \n",
    "#这是各个模型的预测值返回列表\n",
    "prob_results = [y_pred_proba_logistic,\n",
    "                predictions,\n",
    "                y_pred_proba_GaussianNB,\n",
    "                y_pred_proba_DecisionTreeClassifier,\n",
    "                y_pred_proba_KNeighborsClassifier,\n",
    "                y_pred_proba_XGBClassifier\n",
    "                ]\n",
    " \n",
    "colors = ['crimson',\n",
    "          'orange',\n",
    "          'gold',\n",
    "          'mediumseagreen',\n",
    "          'steelblue', \n",
    "          'mediumpurple' ,\n",
    "          'black',\n",
    "          'silver',\n",
    "          'navy'\n",
    "         ]\n",
    " \n",
    "linestyles = ['-', '--', '-.', ':', 'dotted', 'dashdot', '--', 'solid', 'dashed']\n",
    " \n",
    "#ROC curves\n",
    "train_roc_graph = multi_models_roc(names, prob_results, colors, linestyles,  y_test, save = True)\n",
    "train_roc_graph.savefig('ROC_Train_all.png')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e51b1d9c",
   "metadata": {},
   "source": [
    "根据真实值和预测值（预测概率）的向量来计算混淆矩阵和最优的划分阈值\n",
    "        \n",
    "Args:\n",
    " y_test:真实值\n",
    " y_test_predprob：预测值\n",
    " Returns:\n",
    "    返回最佳划分阈值和混淆矩阵\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "9ad12a66",
   "metadata": {},
   "outputs": [],
   "source": [
    "# def evaluation(clf,X_train,y_train,X_test,y_test,modelname,digits):\n",
    "#     \"\"\"\n",
    "#         计算各个模型评价指标\n",
    "        \n",
    "#         Args:\n",
    "#             clf：已经fit好的模型\n",
    "#             X_train,y_train,X_test,y_test:训练和测试数据集\n",
    "#             modelname：模型名称，为了表格的绘制\n",
    "#             digits：各个评价指标需要保留的位数\n",
    "#         Returns:\n",
    "#             返回单个模型评价指标表格\n",
    "#         \"\"\"\n",
    "    \n",
    "#     y_train_predprob = clf.predict_proba(X_train)[:, 1]\n",
    "#     train_auc = round(roc_auc_score(y_train, y_train_predprob),digits)\n",
    "\n",
    "#     y_test_predprob = clf.predict_proba(X_test)[:, 1]\n",
    "#     test_auc = round(roc_auc_score(y_test, y_test_predprob),digits)\n",
    "    \n",
    "#     train_cutoff, TN1,FN1,FP1,TP1 = best_confusion_matrix(y_train,y_train_predprob)\n",
    "#     test_cutoff, TN2,FN2,FP2,TP2 = best_confusion_matrix(y_test,y_test_predprob)\n",
    "\n",
    "#     #Sen Spe\n",
    "#     best_recall,best_prec = round(TP2/(TP2+FN2),digits), round(TN2/(FP2+TN2),digits)\n",
    " \n",
    "#     #PPV NPV\n",
    "#     npv,ppv = round(TN2/(FN2+TN2),digits),round(TP2/(TP2+FP2),digits)\n",
    "    \n",
    "#     #PLR NLR\n",
    "#     plr,nlr = round((TP2/(TP2+FN2))/(FP2/(FP2+TN2)),digits),round((FN2/(TP2+FN2))/(TN2/(FP2+TN2)),digits)\n",
    "    \n",
    "#     #F1值\n",
    "#     y_test_pred=list(map(lambda x:1 if x>=test_cutoff else 0,y_test_predprob))\n",
    "#     f1 = round(f1_score(y_test, y_test_pred),digits)\n",
    "    \n",
    "#     #Youden Index\n",
    "#     youden = round(TP2/(TP2+FN2)+TN2/(FP2+TN2)-1,digits)\n",
    "\n",
    "#     #MCC\n",
    "#     mcc = round(matthews_corrcoef(y_test, y_test_pred),digits)\n",
    "    \n",
    "#     #Kappa\n",
    "#     kappa =round(cohen_kappa_score(y_test_pred, y_test),digits)\n",
    "  \n",
    " \n",
    "# # Name: [train_auc, test_auc, best_prec,best_recall,f1,youden,mcc,kappa,npv,ppv,plr,nlr]}\n",
    "# #     eval_df = {'Model':\n",
    "# #                ['train_auc','test_auc','specificity','sensitivity','F1','Youden Index',\n",
    "# #                 'MCC','Kappa','npv','ppv','plr','nlr'],\n",
    "# #                Name: [train_auc, test_auc, best_prec,\n",
    "# #                       best_recall,f1,youden,mcc,kappa,npv,ppv,plr,nlr]}\n",
    "#     eval_df = {'Model':['train_auc','test_auc','specificity','sensitivity','F1','Youden Index','MCC','Kappa','npv','ppv','plr','nlr'], \n",
    "#                'Name':[train_auc, test_auc, best_prec,best_recall,f1,youden,mcc,kappa,npv,ppv,plr,nlr]}\n",
    "#     eval_df = pd.DataFrame(data=eval_df)\n",
    "\n",
    "#     return eval_df\n"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.12"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
